Skip to content

normalize the scheme case in the Uri constructor#2239

Merged
hyperxpro merged 1 commit into
AsyncHttpClient:mainfrom
madib06ops:uri-scheme-case
Jul 16, 2026
Merged

normalize the scheme case in the Uri constructor#2239
hyperxpro merged 1 commit into
AsyncHttpClient:mainfrom
madib06ops:uri-scheme-case

Conversation

@madib06ops

Copy link
Copy Markdown
Contributor

validateSupportedScheme accepts a scheme equal ignoring case to http/https/ws/wss, but the constructor derived secured with a case-sensitive compare, so a Uri built through the public constructor or withNewScheme with "HTTPS" passes validation and still reports isSecured() false, with getSchemeDefaultPort() then returning 80. That gates the TLS and credential decisions downstream: no SslHandler is installed, Proxy-Authorization goes out in the clear, Secure cookies are released, and the schemeDowngrade check on redirect never fires. UriParser already lowercases the schemes it parses, so only the direct-constructor path disagrees; normalizing in the constructor lines the two up (the adjacent webSocket line was already using equalsIgnoreCase for WSS).

@hyperxpro hyperxpro closed this Jul 16, 2026
@hyperxpro hyperxpro reopened this Jul 16, 2026
@hyperxpro
hyperxpro merged commit cd77670 into AsyncHttpClient:main Jul 16, 2026
26 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants